package com.dsh.search.vo;

import com.dsh.common.to.es.SkuEsModel;
import lombok.Data;
import lombok.Getter;

import java.util.ArrayList;
import java.util.List;

/**
 * 前端查询的多少条件
 */
public class SearchResult {
    //查询到的所以商品信息
    private List<SkuEsModel> products;
    /**
     * 以下是分页信息
     */
    private Long pageNum;
    private Long total;
    private Integer totalPages;

    /**
     * 当前查到的结构所有涉及到的品牌
     */
    private List<BrandVo> brands;
    /**
     * 当前查到的结构所有涉及到的分类
     */
    private List<CatalogVo> Catalogs;
    /**
     * 当前查到的结构所有涉及到的属性
     */
    private List<AttrVo> attrs;



    private List<NavVo> navs = new ArrayList<>();
    private List<Long> attrIds = new ArrayList<>();

    public List<Long> getAttrIds() {
        return attrIds;
    }

    public void setAttrIds(List<Long> attrIds) {
        this.attrIds = attrIds;
    }
    /* 面包屑导航数据 */
    //==========以上返回界面的信息==========

    public static class NavVo {
        private String navName;
        private String navValue;
        private String link;

        public String getNavName() {
            return navName;
        }

        public void setNavName(String navName) {
            this.navName = navName;
        }

        public String getNavValue() {
            return navValue;
        }

        public void setNavValue(String navValue) {
            this.navValue = navValue;
        }

        public String getLink() {
            return link;
        }

        public void setLink(String link) {
            this.link = link;
        }
    }

    public List<NavVo> getNavs() {
        return navs;
    }

    public void setNavs(List<NavVo> navs) {
        this.navs = navs;
    }

    public List<SkuEsModel> getProducts() {
        return products;
    }

    public void setProducts(List<SkuEsModel> products) {
        this.products = products;
    }

    public Long getPageNum() {
        return pageNum;
    }

    public void setPageNum(Long pageNum) {
        this.pageNum = pageNum;
    }

    public Long getTotal() {
        return total;
    }

    public void setTotal(Long total) {
        this.total = total;
    }

    public Integer getTotalPages() {
        return totalPages;
    }

    public void setTotalPages(Integer totalPages) {
        this.totalPages = totalPages;
    }

    public List<BrandVo> getBrands() {
        return brands;
    }

    public void setBrands(List<BrandVo> brands) {
        this.brands = brands;
    }

    public List<CatalogVo> getCatalogs() {
        return Catalogs;
    }

    public void setCatalogs(List<CatalogVo> catalogs) {
        Catalogs = catalogs;
    }

    public List<AttrVo> getAttrs() {
        return attrs;
    }

    public void setAttrs(List<AttrVo> attrs) {
        this.attrs = attrs;
    }

    public static class BrandVo {
        private Long brandId;
        private String brandName;
        private String brandImg;

        public Long getBrandId() {
            return brandId;
        }

        public void setBrandId(Long brandId) {
            this.brandId = brandId;
        }

        public String getBrandName() {
            return brandName;
        }

        public void setBrandName(String brandName) {
            this.brandName = brandName;
        }

        public String getBrandImg() {
            return brandImg;
        }

        public void setBrandImg(String brandImg) {
            this.brandImg = brandImg;
        }
    }


    public static class CatalogVo {
        private Long catalogId;
        private String catalogName;

        public Long getCatalogId() {
            return catalogId;
        }

        public void setCatalogId(Long catalogId) {
            this.catalogId = catalogId;
        }

        public String getCatalogName() {
            return catalogName;
        }

        public void setCatalogName(String catalogName) {
            this.catalogName = catalogName;
        }
    }


    public static class AttrVo {
        private Long attrId;
        private String attrName;
        private List<String> attrValue;


        public Long getAttrId() {
            return attrId;
        }

        public void setAttrId(Long attrId) {
            this.attrId = attrId;
        }

        public String getAttrName() {
            return attrName;
        }

        public void setAttrName(String attrName) {
            this.attrName = attrName;
        }

        public List<String> getAttrValue() {
            return attrValue;
        }

        public void setAttrValue(List<String> attrValue) {
            this.attrValue = attrValue;
        }
    }
}
